package com.example.javabase.DesignPattern.Strategy;

import java.util.Map;

/**
 * @author: wyb
 * @date: 2021/11/3 15:52
 * @describe: 指标计算基类
 * @vision 1.0
 */
public abstract class AbstractInstrCalculateHandler {

    /**  calculateStrategy
     * @Author wyb
     * @Description 执行入口
     * @Date 15:57 2021/11/3
     * @Param [formula：指标公式
     *         instrsValue：指标公式中参与计算的<指标-值>]
     * @return java.math.BigDecimal
     **/
    public final Object excute(String formula, Map<String, Object> instrsValue) {
        return this.handler(formula,instrsValue);
    }

    /**
     * @Author wyb
     * @Description 实现类实现的方法
     * @Date 15:57 2021/11/3
     * @Param [formula：指标公式
     *         instrsValue：指标公式中参与计算的<指标-值>]
     * @return java.math.BigDecimal
     */
    protected abstract Object handler(String formula, Map<String, Object> instrsValue);
}
